revision:
&lgt;main> &lgt;div class="circles circle1">&lgt;/div> &lgt;div class="circles circle2">&lgt;/div> &lgt;div class="circles circle3">&lgt;/div> &lgt;div class="circles circle4">&lgt;/div> &lgt;div class="circles circle5">&lgt;/div> &lgt;/main> &lgt;style> main {display: grid; grid-template-columns: repeat(5, 1fr); place-items: center; padding: 2vw; border: 0.2vw solid blue; width: 80vw; height: 20vw; margin-left: 10vw;} .circles{background-color: darkblue; clip-path: circle(10vw at 50% 50%); height: 10vw; width: 10vw; border-radius: 50%; } .circle1 {animation-name: Circle; animation-duration: 3s; animation-timing-function: ease-in; animation-iteration-count: infinite;} .circle2{animation-name: Circle1; animation-duration: 6s; animation-timing-function: ease-out; animation-iteration-count:infinite;} .circle3{animation-name: Circle2; animation-duration: 8s; animation-timing-function: ease-out; animation-iteration-count:infinite;} .circle4{animation-name: Circle3; animation-duration: 10s; animation-timing-function: ease-out; animation-iteration-count:infinite;} .circle5{animation-name: Circle4; animation-duration: 12s; animation-timing-function: ease-out; animation-iteration-count:infinite;} @keyframes Circle { 0%, 100% {background: darkred; clip-path: circle(50%); } 50% {background: #ffd700; clip-path: circle(1vw at 35% 35%); transform: translateX (-12vw);} } @keyframes Circle1 { 0%, 100% {background: darkblue; clip-path: circle(40%); } 50% {background: lightgreen; clip-path: circle(1vw at -40% -40%); transform: translateX (12vw);} } @keyframes Circle2 { 0%, 100% {background: darkgreen; clip-path: circle(60%); } 50% {background: lightgreen; clip-path: circle(1vw at 10% 10%); transform: translateX (-12vw);} } @keyframes Circle3 { 0%, 100% {background: black; clip-path: circle(30%); } 50% {background: lightgreen; clip-path: circle(1vw at 15% 15%); transform: translateX (12vw);} } @keyframes Circle4 { 0%, 100% {background: white; clip-path: circle(70%); } 50% {background: lightgreen; clip-path: circle(1vw at -25% -25%); transform: translateX (-12vw);} } &lgt;/style>
&lgt;div class="main"> &lgt;div class="squares square1">&lgt;/div> &lgt;div class="squares square2">&lgt;/div> &lgt;div class="squares square3">&lgt;/div> &lgt;div class="squares square4">&lgt;/div> &lgt;div class="squares square5">&lgt;/div> &lgt;/div> &lgt;style> .main {display: grid; grid-template-columns: repeat(5, 1fr); place-items: center; padding: 2em; border: 0.2vw solid blue; width: 80vw; height: 20vw; margin-left: 10vw;} .squares{width: 10vw; height: 10vw; background-image: linear-gradient(to right, blue, crimson);clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);} .square1{animation-name: Squares; animation-duration: 4s; animation-direction: alternate-reverse; animation-iteration-count: infinite;} .square2{animation-name: Squares1; animation-duration: 8s; animation-direction: alternate-reverse; animation-iteration-count: infinite;} .square3{animation-name: Squares2; animation-duration: 4s; animation-direction: alternate-reverse; animation-iteration-count: infinite;} .square4{animation-name: Squares3; animation-duration: 8s; animation-direction: alternate-reverse; animation-iteration-count: infinite;} .square5{animation-name: Squares4; animation-duration: 4s; animation-direction: alternate-reverse; animation-iteration-count: infinite;} @keyframes Squares { 25% {background-image: linear-gradient(to right, #f0c27b, #4b1248); clip-path: polygon(20% 0%, 100% 40%, 70% 100%, 10% 100%);} 50% {background-image: linear-gradient(to right, #c21500, #ffc500); clip-path: polygon(0% 45%, 100% 20%, 50% 75%, 0% 100%);} 75% {background-image: linear-gradient(to right, #00d2ff, #3a7bd5);clip-path: polygon(100% 38%, 100% 38%, 66% 100%, 0% 53%);} } @keyframes Squares1 { 25% {background-image: linear-gradient(to right, #f0c27b, #4b1248); clip-path: polygon(20% 0%, 100% 40%, 70% 100%, 10% 100%);} 50% {background-image: linear-gradient(to right, #c21500, #ffc500); clip-path: polygon(45% 0%, 20% 100%, 75% 50%, 100% 0%);} 75% {background-image: linear-gradient(to right, #00d2ff, #3a7bd5);clip-path: polygon(38% 100%, 38% 100%, 100% 66%, 53% 0%);} } @keyframes Squares2 { 25% {background-image: linear-gradient(to right, #f0c27b, #4b1248); clip-path: polygon(20% 0%, 40% 100%, 100% 70%, 10% 100%);} 50% {background-image: linear-gradient(to right, #c21500, #ffc500); clip-path: polygon(45% 0%, 100% 20%, 75% 50%, 100% 0%);} 75% {background-image: linear-gradient(to right, #00d2ff, #3a7bd5);clip-path: polygon(38% 100%, 38% 100%, 66% 100%, 53% 0%);} } @keyframes Squares3 { 25% {background-image: linear-gradient(to right, #f0c27b, #4b1248); clip-path: polygon(0% 20%, 100% 40%, 70% 100%, 10% 100%);} 50% {background-image: linear-gradient(to right, #c21500, #ffc500); clip-path: polygon(0% 45%, 20% 100%, 75% 50%, 100% 0%);} 75% {background-image: linear-gradient(to right, #00d2ff, #3a7bd5);clip-path: polygon(100% 38%, 38% 100%, 100% 66%, 53% 0%);} } @keyframes Squares4 { 25% {background-image: linear-gradient(to right, #f0c27b, #4b1248); clip-path: polygon(20% 0%, 40% 100%, 70% 100%, 10% 100%);} 50% {background-image: linear-gradient(to right, #c21500, #ffc500); clip-path: polygon(45% 0%, 100% 20%, 75% 50%, 100% 0%);} 75% {background-image: linear-gradient(to right, #00d2ff, #3a7bd5);clip-path: polygon(38% 100%, 100% 38%, 100% 66%, 53% 0%);} } &lgt;/style>
&lgt;div class="main2"> &lgt;img class="pic" src="../images/tesla.jpg" alt="tesla" /> &lgt;img class="pic1" src="../images/tesla.jpg" alt="tesla" /> &lgt;img class="pic2" src="../images/tesla.jpg" alt="tesla" /> &lgt;img class="pic3" src="../images/tesla.jpg" alt="tesla" /> &lgt;img class="pic4" src="../images/tesla.jpg" alt="tesla" /> &lgt;/div> &lgt;style> .main2 {display: grid; grid-template-columns: repeat(5, 1fr); place-items: center; padding: 2em;border: 0.2vw solid blue; width: 80vw; height: 20vw; margin-left: 10vw;} .main2 img {width: 10vw;} .pic{animation-name: Shapes; animation-duration: 3s; animation-iteration-count: infinite;} .pic1{animation-name: Shapes1; animation-duration: 4s; animation-iteration-count: infinite;} .pic2{animation-name: Shapes2; animation-duration: 5s; animation-iteration-count: infinite;} .pic3{animation-name: Shapes3; animation-duration: 6s; animation-iteration-count: infinite;} .pic4{animation-name: Shapes4; animation-duration: 7s; animation-iteration-count: infinite;} @keyframes Shapes { 0% {clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 100% 38%);} 50% {clip-path: polygon(50% 50%, 90% 88%, 80% 10%, 20% 10%, 8% 90%);} 75% {clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 100%);} } @keyframes Shapes1 { 0% {clip-path: polygon(0% 50%, 100% 38%, 82% 100%, 18% 100%, 38% 100%);} 50% {clip-path: polygon(50% 50%, 90% 88%, 80% 10%, 20% 10%, 90% 8%);} 75% {clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 100%);} } @keyframes Shapes2 { 0% {clip-path: polygon(0% 50%, 50% 38%, 82% 100%, 18% 100%, 38% 10%);} 50% {clip-path: polygon(50% 50%, 50% 88%, 80% 10%, 20% 10%, 90% 80%);} 75% {clip-path: polygon(50% 0%, 50% 38%, 82% 100%, 18% 100%, 0% 10%);} } @keyframes Shapes3 { 0% {clip-path: polygon(0% 50%, 100% 38%, 82% 10%, 18% 100%, 38% 100%);} 50% {clip-path: polygon(50% 50%, 90% 88%, 8% 10%, 20% 10%, 90% 8%);} 75% {clip-path: polygon(50% 0%, 100% 38%, 82% 10%, 18% 100%, 0% 100%);} } @keyframes Shapes4 { 0% {clip-path: polygon(0% 50%, 100% 38%, 82% 100%, 10% 100%, 38% 100%);} 50% {clip-path: polygon(50% 50%, 90% 88%, 80% 10%, 10% 10%, 90% 8%);} 75% {clip-path: polygon(50% 0%, 100% 68%, 82% 100%, 60% 100%, 10% 100%);} } &lgt;/style>
&lgt;div class="main3"> &lgt;img class="vg" src="../images/vangogh.jpg" alt="vangogh"/> &lgt;img class="vg1" src="../images/vangogh.jpg" alt="vangogh"/> &lgt;img class="vg2" src="../images/vangogh.jpg" alt="vangogh"/> &lgt;img class="vg3" src="../images/vangogh.jpg" alt="vangogh"/> &lgt;img class="vg4" src="../images/vangogh.jpg" alt="vangogh"/> &lgt;/div> &lgt;style> .main3 {display: grid; grid-template-columns: repeat(5, 1fr); place-items: center; padding: 2vw; border: 0.2vw solid blue; width: 80vw; height: 20vw; margin-left: 10vw;} .main3 img {max-width: 100%;} .vg{width: 15vw; border: 0.4vw solid brown; clip-path:polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);animation-name: changeShapes; animation-duration: 15s; animation-iteration-count: infinite;} .vg1{width: 15vw; border: 0.4vw solid brown; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);animation-name: changeShapes1; animation-duration: 6s; animation-iteration-count: infinite;} .vg2{width: 15vw; border: 0.4vw solid brown; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);animation-name: changeShapes2; animation-duration: 12s; animation-iteration-count: infinite;} .vg3{width: 15vw; border: 0.4vw solid brown; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);animation-name: changeShapes3; animation-duration: 8s; animation-iteration-count: infinite;} .vg4{width: 15vw; border: 0.4vw solid brown; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);animation-name: changeShapes4; animation-duration: 5s; animation-iteration-count: infinite;} @keyframes changeShapes { from {clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 50% {clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 75% {clip-path: polygon(0% 15%, 15% 15%, 15% 0%, 85% 0%, 85% 15%, 100% 15%, 100% 85%, 85% 85%, 85% 100%, 15% 100%, 15% 85%, 0% 85%);} to {clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);} } @keyframes changeShapes1 { from {clip-path: polygon(25% 100%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 50% {clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 75% {clip-path: polygon(0% 15%, 15% 15%, 15% 0%, 85% 0%, 85% 15%, 100% 15%, 100% 85%, 85% 85%, 85% 100%, 15% 100%, 15% 85%, 0% 85%);} to {clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 100% 0%);} } @keyframes changeShapes2 { from {clip-path: polygon(25% 100%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 50% {clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 75% {clip-path: polygon(0% 15%, 15% 15%, 15% 0%, 85% 0%, 85% 15%, 100% 15%, 100% 85%, 85% 85%, 85% 100%, 15% 100%, 15% 85%, 0% 85%);} to {clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 100% 0%);} } @keyframes changeShapes3 { from {clip-path: polygon(25% 100%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 50% {clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 75% {clip-path: polygon(0% 15%, 15% 15%, 15% 0%, 85% 0%, 85% 15%, 100% 15%, 100% 85%, 85% 85%, 85% 100%, 15% 100%, 15% 85%, 0% 85%);} to {clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 100% 0%);} } @keyframes changeShapes4 { from {clip-path: polygon(25% 100%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 50% {clip-path: polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%);} 75% {clip-path: polygon(0% 15%, 15% 15%, 15% 0%, 85% 0%, 85% 15%, 100% 15%, 100% 85%, 85% 85%, 85% 100%, 15% 100%, 15% 85%, 0% 85%);} to {clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 100% 0%);} } &lgt;/style>
&lgt;div id="container1"> &lgt;div class="lw-image" style="--overlay-color: hotpink"> &lgt;div class="image-wrapper">&lgt;img src="../images/13a.jpg"/>&lgt;/div> &lgt;h4 class="title" data-cta="Ready for a drink →">Sunset!&lgt;/h4> &lgt;/div> &lgt;div class="lw-image" style="--overlay-color: yellow"> &lgt;div class="image-wrapper">&lgt;img src="../images/17.jpg"/>&lgt;/div> &lgt;h4 class="title" data-cta="Ready to drive →">Racing time!&lgt;/h4> &lgt;/div> &lgt;div class="lw-image" style="--overlay-color: dodgerblue"> &lgt;div class="image-wrapper">&lgt;img src="../images/25.jpg"/>&lgt;/div> &lgt;h4 class="title" data-cta="Ready for fun →">Night life!&lgt;/h4> &lgt;/div> &lgt;div class="lw-image" style="--overlay-color: darkgreen"> &lgt;div class="image-wrapper">&lgt;img src="../images/26.jpg"/>&lgt;/div> &lgt;h4 class="title" data-cta="Ready to receive →">Delivery!&lgt;/h4> &lgt;/div> &lgt;/div> &lgt;style> #container1{display: grid; grid-template-columns: repeat(4,1fr); grid-auto-rows: minmax(2vw, auto); border: 0.2vw solid blue; width: 80vw; height: 20vw; margin-left: 10vw;} .lw-image {position: relative; margin-top: 2vw;cursor: pointer; width: 15vw; height: 15vw;} .title {font-size: 1.2vw; display: flex; align-items: center; position: relative; left: 0; bottom: 0; font-weight: 600; line-height: 1.2; white-space: nowrap; transform: translate(10%, -50%); transition: transform 0.5s ease-in; pointer-events: none;} .title::after {content: attr(data-cta); display: inline-block; margin-left: 1vw; font-size: 1vw; font-weight: 400; letter-spacing: 0.125vw; opacity: 0; transform: translateX(-25%); transition: transform 0.5s ease-out; opacity: 0;} .image-wrapper {width: 15vw; height: 15vw; overflow: hidden; -webkit-clip-path: polygon(100% 0, 100% 50%, 100% 100%, 0% 100%, 0 50%, 0% 0%); clip-path: polygon(100% 0, 100% 50%, 100% 100%, 0% 100%, 0 50%, 0% 0%); transition: transform 0.5s ease; -webkit-clip-path: polygon(100% 0, 100% 50%, 100% 100%, 0% 100%, 0 50%, 0% 0%); -wekbit-transition: transform 0.5s ease;} .image-wrapper img {position: relative; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; transform: translateX(10%); transition: transform 0.5s ease-out;} .image-wrapper::after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: pink; mix-blend-mode: multiply; opacity: 0; transform: translateZ(0); transition: opacity 0.5s ease-out;} .lw-image:hover img {transform: translateX(0);} .lw-image:hover .image-wrapper {-webkit-clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 25% 50%, 0% 0%); clip-path: polygon(75% 0%, 100% 50%, 75% 100%, 0% 100%, 25% 50%, 0% 0%); transform: translateX(25%); transition-timing-function: step-start;} .lw-image:hover .title {transform: translate(5%, -50%); transition-timing-function: var(--bounce-out);} .lw-image:hover .title::after {opacity: 1; transform: translateX(0); transition-timing-function: step-end;} .lw-image:hover .image-wrapper::after {opacity: 1;}